home *** CD-ROM | disk | FTP | other *** search
- MODULE 'highprecision'
- /*calculates e to 1000 places.*/
- DEF ep,n1,n2,t1,t2,t3,s,holdit
-
- CONST LEN=1000
-
- PROC main()
- IF (highprecisionbase:=OpenLibrary('highprecision.library',1))<>0
- IF HpSetup(LEN)<>0
- n1:=1
- n2:=1
- ep:=HpMakeVar()
- t1:=HpMakeVar()
- t2:=HpMakeVar()
- t3:=HpMakeVar()
- s:=HpMakeStr()
- Int2hp(1,t1)
- Int2hp(n1,t2)
- Int2hp(1,t3)
- REPEAT
- ->WriteF('.')
- holdit:=t3
- t3:=ep
- ep:=holdit
- ->HpCopy(t3,ep)
- HpDiv(t1,Int2hp(n1++,t2),t1)
- HpHalf(t1,t1)
- HpHalf(t1,t1)
- HpHalf(t1,t1)
- HpHalf(t1,t1)
- HpHalf(t1,t1)
- HpAdd(t1,ep,t3)
- UNTIL (HpCmp(t3,ep,0)=0) OR (CtrlC()=TRUE)
- HpMul(ep,ep,ep)
- HpMul(ep,ep,ep)
- HpMul(ep,ep,ep)
- HpMul(ep,ep,ep)
- HpMul(ep,ep,ep)
- WriteF('\n')
- Hp2str(ep,s,0)
- WriteF('\s\n',s)
- ENDIF
- CloseLibrary(highprecisionbase)
- ELSE
- WriteF('\nnolib\n')
- ENDIF
- ENDPROC
-